package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.impl.TSCProcessRoleImpl;
import com.shrcl.engineerprocess.domain.proxy.TSCProcessRoleProxy;
import com.shrct.businessprocess.organization.RCEmployee;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = TSCProcessRoleImpl.class)
public interface TSCProcessRole extends IModelObject {
  public abstract RCEmployee getFirstLevelVerifier();
  
  public abstract TSCProcessRole setFirstLevelVerifier(final RCEmployee firstLevelVerifier);
  
  public abstract RCEmployee getSecondLevelVerifier();
  
  public abstract TSCProcessRole setSecondLevelVerifier(final RCEmployee secondLevelVerifier);
  
  public abstract void update(final Procedure1<? super TSCProcessRole> updater);
  
  public abstract void checkValid();
  
  public abstract TSCProcessRoleProxy toProxy();
}
